package org.domeos.framework.api.service.storage;

import org.domeos.basemodel.HttpResponseTemp;
import org.domeos.framework.api.model.auth.User;
import org.domeos.framework.api.model.storage.Storage;

public interface StorageService {
	/**
	 * 
	 * @param storage
	 * @return
	 */
	HttpResponseTemp<?> setStorage(Storage storage);
	/**
	 * 
	 * @param storage
	 * @return
	 */
	HttpResponseTemp<?> updateStorage(Storage storage);
	/**
	 * 
	 * @return
	 */
	HttpResponseTemp<?> listStorageByClusterId(int clusterId);
	/**
	 * 
	 * @param id
	 * @return
	 */
	HttpResponseTemp<?> deleteStorage(int id);
	/**
	 * 
	 * @param id
	 * @return
	 */
	HttpResponseTemp<?> getStorageById(int id);
	/**
	 * 
	 * @param clusterId
	 * @param namespace
	 * @return
	 */
	HttpResponseTemp<?> getStorageByClusterAndNamespace(int clusterId, String namespace);
	/**
	 * 
	 * @param id
	 * @return
	 */
	HttpResponseTemp<?> getCountDeployById(int id);
	/**
	 * 
	 * @param id
	 * @return
	 */
	HttpResponseTemp<?> getDeployInstanceById(int id);
	/**
	 * 
	 * @param user
	 * @param storage
	 * @return
	 */
	HttpResponseTemp<?> sreSetStorage(User user, Storage storage);
	/**
	 * 
	 * @param user
	 * @param id
	 * @return
	 */
	HttpResponseTemp<?> sreDeleteStorage(User user, int id);
	/**
	 * 
	 * @param id
	 * @return
	 */
	HttpResponseTemp<?> sregetPVCNameById(int id);
}
